package pe.com.cotelasa.scp.dao.impl;

import java.io.Serializable;
import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import pe.com.cotelasa.common.dao.DaoImpl;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dao.IDAOBanco;
import pe.com.cotelasa.scp.dominio.common.ESTADO_REGISTRO;
import pe.com.cotelasa.scp.entidad.Banco;

/**
 * @author usuario
 */
@Repository("daoBanco")
public class DAOBancoImpl extends DaoImpl<Banco, Integer> implements IDAOBanco, Serializable {

    private static Logger logger = Logger.getLogger(DAOBancoImpl.class);
    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public Banco validarBanco(Banco banco) throws DAOException {
        Banco bancoBuscado = null;
        try {
            bancoBuscado = (Banco) sessionFactory.getCurrentSession().createCriteria(Banco.class)
                    .add(Restrictions.eq("nombre", banco.getNombre()))
                    .add(Restrictions.eq("estadoRegistro", ESTADO_REGISTRO.ACTIVO.getValor()))
                    .uniqueResult();
        } catch (Exception e) {
            throw new DAOException(e.getMessage(), e);
        }
        return bancoBuscado;
    }
}
